<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="en">
<head>
<meta name="copyright" content="Copyright (c) 2018 IBM Corporation and others. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="STYLESHEET" href="../../book.css" charset="ISO-8859-1" type="text/css">
<title>Adopting 4.10 mechanisms and APIs</title>
</head>

<body>

<h1>Adopting 4.10 mechanisms and APIs</h1>

<p>
  This section describes changes that are required if you are trying to change
  your 4.9 plug-in to adopt the 4.10 mechanisms and APIs.
</p>

<ol>
	<li><a href="#EquinoxDS_to_FelixSCR">Direct usage of Equinox DS bundle should be replaced</a></li>
</ol>

<hr>

<!-- ############################################## -->
<h2>1. <a name="EquinoxDS_to_FelixSCR">Direct usage of Equinox DS bundle should be replaced</a></h2>
<p><strong>What is affected:</strong> Clients directly using or referencing Equinox DS
</p>
<p><strong>Description:</strong>
For better factorization and maintenance of the OSGI Declarative Services features, we migrated from <code>org.eclipse.equinox.ds</code> bundle to
<code>org.apache.felix.scr</code> which provides the same feature. We consequently removed the <code>org.eclipse.equinox.ds</code> bundle from our
main deliveries (features or products); but keep it for some time available in our update site to avoid breaking clients who strongly need this one.
</p>
<p><strong>Action required:</strong>
Clients should:
</p>
<ul>
<li>Consider replacing direct requirement on <code>org.eclipse.equinox.ds</code> bundle or packages by a requirement on the provided capability: <code>Require-Capability: osgi.extender;
  filter:="(&amp;(osgi.extender=osgi.component)(version>=1.2)(!(version>=2.0)))"</code> in their MANIFEST.MF.</li>
<li>When testing, consider replacing a requirement on the <code>org.eclipse.equinox.ds</code> bundle by a requirement on the <code>org.eclipse.rcp</code> feature. This feature contain
the right implementation of the OSGI Declarative Services implementation.</li>
<li>Replace references to <code>org.eclipse.equinox.ds</code> by references to <code>org.apache.felix.scr</code> in their <code>feature.xml</code>, <code>MANIFEST.MF</code> and <code>*.product</code> files.
For <code>.product</code> files, the new Felix bundle also requires a start-level=1 parameter, just like the Equinox DS one did.</li>
</ul>
All those changes are backward-compatible. So you can apply them on a project using 4.9 as target-platform, and this would work on both 4.9 and 4.10.

</body>
</html>
